{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ['CUDA_VISIBLE_DEVICES'] = '4'\n",
    "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import scipy\n",
    "import altair as alt\n",
    "import matplotlib.pyplot as plt\n",
    "import shap\n",
    "import joblib\n",
    "from tqdm import tqdm\n",
    "import tensorflow as tf\n",
    "from scipy.ndimage.filters import uniform_filter1d\n",
    "\n",
    "from interaction_effects.marginal import MarginalExplainer\n",
    "from interaction_effects.plot import summary_plot\n",
    "from interaction_effects.utils import set_up_environment\n",
    "import data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "set_up_environment()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = pd.read_csv('exoTrain.csv')\n",
    "y_train = X_train['LABEL'].astype(int) - 1\n",
    "X_train = X_train.values[:, 1:].astype(float)\n",
    "\n",
    "X_test = pd.read_csv('exoTest.csv')\n",
    "y_test = X_test['LABEL'].astype(int) - 1\n",
    "X_test = X_test.values[:, 1:].astype(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = (X_train - np.mean(X_train, axis=1, keepdims=True)) / \\\n",
    "           np.std(X_train, axis=1, keepdims=True)\n",
    "X_test  = (X_test - np.mean(X_test, axis=1, keepdims=True)) / \\\n",
    "           np.std(X_test,  axis=1, keepdims=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = np.expand_dims(y_train, axis=-1)\n",
    "y_test  = np.expand_dims(y_test,  axis=-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train_stacked = np.stack([X_train, uniform_filter1d(X_train, axis=1, size=200)], axis=2)\n",
    "X_test_stacked  = np.stack([X_test,  uniform_filter1d(X_test,  axis=1, size=200)], axis=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.models.Sequential()\n",
    "model.add(tf.keras.layers.Conv1D(filters=8, kernel_size=11, activation='relu', input_shape=X_train_stacked.shape[1:]))\n",
    "model.add(tf.keras.layers.MaxPool1D(strides=4))\n",
    "model.add(tf.keras.layers.BatchNormalization())\n",
    "model.add(tf.keras.layers.Conv1D(filters=16, kernel_size=11, activation='relu'))\n",
    "model.add(tf.keras.layers.MaxPool1D(strides=4))\n",
    "model.add(tf.keras.layers.BatchNormalization())\n",
    "model.add(tf.keras.layers.Conv1D(filters=32, kernel_size=11, activation='relu'))\n",
    "model.add(tf.keras.layers.MaxPool1D(strides=4))\n",
    "model.add(tf.keras.layers.BatchNormalization())\n",
    "model.add(tf.keras.layers.Conv1D(filters=64, kernel_size=11, activation='relu'))\n",
    "model.add(tf.keras.layers.MaxPool1D(strides=4))\n",
    "model.add(tf.keras.layers.Flatten())\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "model.add(tf.keras.layers.Dense(64, activation='relu'))\n",
    "model.add(tf.keras.layers.Dropout(0.25))\n",
    "model.add(tf.keras.layers.Dense(64, activation='relu'))\n",
    "model.add(tf.keras.layers.Dense(1, activation='sigmoid'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def batch_generator(x_train, y_train, batch_size=32):\n",
    "    \"\"\"\n",
    "    Gives equal number of positive and negative samples, and rotates them randomly in time\n",
    "    \"\"\"\n",
    "    half_batch = batch_size // 2\n",
    "    x_batch = np.empty((batch_size, x_train.shape[1], x_train.shape[2]), dtype='float32')\n",
    "    y_batch = np.empty((batch_size, y_train.shape[1]), dtype='float32')\n",
    "    \n",
    "    yes_idx = np.where(y_train[:,0] == 1.)[0]\n",
    "    non_idx = np.where(y_train[:,0] == 0.)[0]\n",
    "    \n",
    "    while True:\n",
    "        np.random.shuffle(yes_idx)\n",
    "        np.random.shuffle(non_idx)\n",
    "    \n",
    "        x_batch[:half_batch] = x_train[yes_idx[:half_batch]]\n",
    "        x_batch[half_batch:] = x_train[non_idx[half_batch:batch_size]]\n",
    "        y_batch[:half_batch] = y_train[yes_idx[:half_batch]]\n",
    "        y_batch[half_batch:] = y_train[non_idx[half_batch:batch_size]]\n",
    "    \n",
    "        for i in range(batch_size):\n",
    "            sz = np.random.randint(x_batch.shape[1])\n",
    "            x_batch[i] = np.roll(x_batch[i], sz, axis = 0)\n",
    "     \n",
    "        yield x_batch, y_batch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=tf.keras.optimizers.Adam(1e-5), loss = 'binary_crossentropy', metrics=['accuracy'])\n",
    "hist = model.fit_generator(batch_generator(X_train_stacked, y_train, 32), \n",
    "                           validation_data=(X_test_stacked, y_test), \n",
    "                           verbose=0, epochs=5,\n",
    "                           steps_per_epoch=X_train_stacked.shape[1]//32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/40\n",
      "99/99 - 6s - loss: 0.7457 - accuracy: 0.5369 - val_loss: 0.8125 - val_accuracy: 0.2737\n",
      "Epoch 2/40\n",
      "99/99 - 6s - loss: 0.7065 - accuracy: 0.5777 - val_loss: 0.7669 - val_accuracy: 0.3526\n",
      "Epoch 3/40\n",
      "99/99 - 6s - loss: 0.6622 - accuracy: 0.6152 - val_loss: 0.7150 - val_accuracy: 0.4842\n",
      "Epoch 4/40\n",
      "99/99 - 6s - loss: 0.6480 - accuracy: 0.6433 - val_loss: 0.6800 - val_accuracy: 0.5596\n",
      "Epoch 5/40\n",
      "99/99 - 6s - loss: 0.6324 - accuracy: 0.6458 - val_loss: 0.6673 - val_accuracy: 0.6175\n",
      "Epoch 6/40\n",
      "99/99 - 5s - loss: 0.6110 - accuracy: 0.6645 - val_loss: 0.6260 - val_accuracy: 0.6772\n",
      "Epoch 7/40\n",
      "99/99 - 6s - loss: 0.5801 - accuracy: 0.7008 - val_loss: 0.6005 - val_accuracy: 0.7088\n",
      "Epoch 8/40\n",
      "99/99 - 5s - loss: 0.5764 - accuracy: 0.7023 - val_loss: 0.6058 - val_accuracy: 0.6877\n",
      "Epoch 9/40\n",
      "99/99 - 6s - loss: 0.5649 - accuracy: 0.7216 - val_loss: 0.5561 - val_accuracy: 0.7298\n",
      "Epoch 10/40\n",
      "99/99 - 5s - loss: 0.5350 - accuracy: 0.7352 - val_loss: 0.5251 - val_accuracy: 0.7667\n",
      "Epoch 11/40\n",
      "99/99 - 6s - loss: 0.5403 - accuracy: 0.7355 - val_loss: 0.5211 - val_accuracy: 0.7737\n",
      "Epoch 12/40\n",
      "99/99 - 6s - loss: 0.5201 - accuracy: 0.7443 - val_loss: 0.5018 - val_accuracy: 0.7772\n",
      "Epoch 13/40\n",
      "99/99 - 6s - loss: 0.5237 - accuracy: 0.7348 - val_loss: 0.5200 - val_accuracy: 0.7596\n",
      "Epoch 14/40\n",
      "99/99 - 5s - loss: 0.4812 - accuracy: 0.7699 - val_loss: 0.4857 - val_accuracy: 0.7719\n",
      "Epoch 15/40\n",
      "99/99 - 6s - loss: 0.5066 - accuracy: 0.7525 - val_loss: 0.4826 - val_accuracy: 0.7719\n",
      "Epoch 16/40\n",
      "99/99 - 5s - loss: 0.4672 - accuracy: 0.7756 - val_loss: 0.4653 - val_accuracy: 0.7789\n",
      "Epoch 17/40\n",
      "99/99 - 5s - loss: 0.4591 - accuracy: 0.7797 - val_loss: 0.4759 - val_accuracy: 0.7789\n",
      "Epoch 18/40\n",
      "99/99 - 5s - loss: 0.4662 - accuracy: 0.7835 - val_loss: 0.4666 - val_accuracy: 0.7825\n",
      "Epoch 19/40\n",
      "99/99 - 5s - loss: 0.4552 - accuracy: 0.7879 - val_loss: 0.4709 - val_accuracy: 0.7719\n",
      "Epoch 20/40\n",
      "99/99 - 5s - loss: 0.4217 - accuracy: 0.8112 - val_loss: 0.4686 - val_accuracy: 0.7789\n",
      "Epoch 21/40\n",
      "99/99 - 5s - loss: 0.4426 - accuracy: 0.7872 - val_loss: 0.4548 - val_accuracy: 0.7789\n",
      "Epoch 22/40\n",
      "99/99 - 6s - loss: 0.4205 - accuracy: 0.8059 - val_loss: 0.4450 - val_accuracy: 0.7842\n",
      "Epoch 23/40\n",
      "99/99 - 5s - loss: 0.3897 - accuracy: 0.8245 - val_loss: 0.4314 - val_accuracy: 0.7965\n",
      "Epoch 24/40\n",
      "99/99 - 5s - loss: 0.4141 - accuracy: 0.8122 - val_loss: 0.4230 - val_accuracy: 0.8158\n",
      "Epoch 25/40\n",
      "99/99 - 6s - loss: 0.3815 - accuracy: 0.8226 - val_loss: 0.4140 - val_accuracy: 0.8070\n",
      "Epoch 26/40\n",
      "99/99 - 6s - loss: 0.3872 - accuracy: 0.8289 - val_loss: 0.4108 - val_accuracy: 0.8105\n",
      "Epoch 27/40\n",
      "99/99 - 6s - loss: 0.3527 - accuracy: 0.8475 - val_loss: 0.3662 - val_accuracy: 0.8404\n",
      "Epoch 28/40\n",
      "99/99 - 5s - loss: 0.3577 - accuracy: 0.8507 - val_loss: 0.3508 - val_accuracy: 0.8351\n",
      "Epoch 29/40\n",
      "99/99 - 6s - loss: 0.3262 - accuracy: 0.8551 - val_loss: 0.3175 - val_accuracy: 0.8596\n",
      "Epoch 30/40\n",
      "99/99 - 6s - loss: 0.3412 - accuracy: 0.8526 - val_loss: 0.2960 - val_accuracy: 0.8789\n",
      "Epoch 31/40\n",
      "99/99 - 6s - loss: 0.3120 - accuracy: 0.8731 - val_loss: 0.2955 - val_accuracy: 0.8754\n",
      "Epoch 32/40\n",
      "99/99 - 7s - loss: 0.3009 - accuracy: 0.8728 - val_loss: 0.2489 - val_accuracy: 0.8947\n",
      "Epoch 33/40\n",
      "99/99 - 7s - loss: 0.3136 - accuracy: 0.8614 - val_loss: 0.2861 - val_accuracy: 0.8789\n",
      "Epoch 34/40\n",
      "99/99 - 6s - loss: 0.2949 - accuracy: 0.8750 - val_loss: 0.3365 - val_accuracy: 0.8579\n",
      "Epoch 35/40\n",
      "99/99 - 7s - loss: 0.2819 - accuracy: 0.8870 - val_loss: 0.2773 - val_accuracy: 0.8842\n",
      "Epoch 36/40\n",
      "99/99 - 7s - loss: 0.2861 - accuracy: 0.8791 - val_loss: 0.2144 - val_accuracy: 0.9211\n",
      "Epoch 37/40\n",
      "99/99 - 6s - loss: 0.2872 - accuracy: 0.8835 - val_loss: 0.2234 - val_accuracy: 0.9158\n",
      "Epoch 38/40\n",
      "99/99 - 6s - loss: 0.2678 - accuracy: 0.8920 - val_loss: 0.2363 - val_accuracy: 0.9018\n",
      "Epoch 39/40\n",
      "99/99 - 6s - loss: 0.2588 - accuracy: 0.8911 - val_loss: 0.2161 - val_accuracy: 0.9140\n",
      "Epoch 40/40\n",
      "99/99 - 6s - loss: 0.2529 - accuracy: 0.9009 - val_loss: 0.2389 - val_accuracy: 0.9053\n"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer=tf.keras.optimizers.Adam(5e-5), loss = 'binary_crossentropy', metrics=['accuracy'])\n",
    "hist = model.fit_generator(batch_generator(X_train_stacked, y_train, 32), \n",
    "                           validation_data=(X_test_stacked, y_test), \n",
    "                           verbose=2, epochs=40,\n",
    "                           steps_per_epoch=X_train_stacked.shape[1]//32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZyNdfvA8c81M5YhSkj2LRJSmKSkkkgUefJYilSkeqJFCQ+VJS1Iqp+ytOixKwlJJNsTkZGd7GWJSLaHiuH7++M6kzHOzBwzZ5/r/Xqd15zlvs99nfOq69y+9/W9vuKcwxhjTOSLCXUAxhhj/MMSujHGRAlL6MYYEyUsoRtjTJSwhG6MMVEiLlQHLlSokCtTpkyoDm+MMRFpxYoVvznnCnt7LWQJvUyZMiQmJobq8MYYE5FE5Oe0XrMhF2OMiRKW0I0xJkpYQjfGmChhCd0YY6KEJXRjjIkSltCNMSZKWEI3xpgoEXkJfeVK6NkTrO2vMcacI/IS+uLF8NprMHduqCMxxpiw4lNCF5FGIrJJRLaKSA8vr5cSkfkislJE1ohIY/+H6vHII1CqFPTqZWfpxhiTQoYJXURigWHAnUBloI2IVE61WW9gsnOuOtAaeNffgf4tVy548UVYvhxmzAjYYYwxJtL4coZeC9jqnNvunDsJTASapdrGAfk99y8GfvFfiF60bw8VKsALL8CZMwE9lDHGRApfEnpxYFeKx7s9z6XUB2grIruBL4Eu3t5IRDqJSKKIJB44cCAT4XrExUHfvrBmDUyenPn3McaYKOKvi6JtgNHOuRJAY2CMiJz33s65kc65BOdcQuHCXrs/+q5VK6haFV56CZKSsvZexhgTBXxJ6HuAkikel/A8l1IHYDKAc+47IDdQyB8BpikmBvr3h82bYcyYgB7KGGMigS8JfTlQQUTKikhO9KLn9FTb7ATqA4jIVWhCz8KYio+aNYOEBB1++euvgB/OGGPCWYYJ3TmXBHQGZgMb0WqW9SLST0SaejZ7FnhERFYDE4AHnQtCTaEIvPwy/PwzvP9+wA9njDHhTIKRd71JSEhwflmxyDm45RbYsgW2bYM8ebL+nsYYE6ZEZIVzLsHba5E3UzS15LP0ffvg3cCVvxtjTLiL/IQOcPPN0LChtgQ4ejTU0RhjTEhER0IHPUs/eBCGDg11JMYYExLRk9Cvuw7uuQfeeAN+/z3U0RhjTNBFT0IH6NcPjh2DQYNCHYkxxgRddCX0q6/WGaTvvAOHDoU6GmOMCaroSugA3bvD8eMwYkSoIzHGmKCKvoR+7bVw++3w9ts2e9QYk61EX0IH6NYN9u6F8eNDHYkxxgRNdCb0Bg2gWjUYPNj6pRtjso3oTOgi8NxzsGEDfPVVqKMxxpigiLiE/tNPeuKdodatoXhxK2E0xmQbEZfQJ0zQIfLZszPYMEcOePppWLAA/NEEzBhjwlzEJfSuXaFiRejc2Ycilk6dIH9+H0/pjTEmskVcQs+VS+cNbd3qw2hK/vya1D/5RMdqjDEmikVcQgdtrNiiBQwY4EOefuopXa7uzTeDEZoxxoRMRCZ00PwcG6v5Ol0lSsB998EHH1jTLmNMVIvYhF6iBLz4IkyfDl98kcHGzz6r7QCGDw9KbMYYEwoRvQTdyZM60//PP2H9eoiPT2fjRo1g1Sodo8mdO0vHNcaYUInaJehy5oRhw2DHDnj99Qw2fu45+PVXGDcuKLEZY0ywRXRCB6hXD9q00dXntm1LZ8P69fV03toBGGOiVMQndNAcnTMndOkCaY4gJbcD+PFH+PLLoMZnjDHBEBUJvVgx6NsXZs2CadPS2bBlSyhdGnr2tNa6xpioExUJHfTs/OqrtYzxxIk0NsqRA959F9at018AY4yJIj4ldBFpJCKbRGSriPTw8vqbIrLKc9ssIof9H2r64uL0AunOnTrhKE2NG8PDD+tV1O+/D1p8xhgTaBmWLYpILLAZaADsBpYDbZxzG9LYvgtQ3Tn3cHrv64+yRW/atdOZ/lu2QMmSaWx05IiezufNCz/8kEG9ozHGhI+sli3WArY657Y7504CE4Fm6WzfBphw4WH6x8sv64XRdEdULr5YZ47++CO88ELQYjPGmEDyJaEXB3aleLzb89x5RKQ0UBaYl8brnUQkUUQSDxw4cKGx+qR0afjXv+CjjzRfp6lBA3jsMRgyBBYvDkgsxhgTTP6+KNoa+NQ5d9rbi865kc65BOdcQuHChf186LP+/W8dTenVK4MNBw7UX4AHH9TWAMYYE8F8Seh7gJSj0SU8z3nTmhAOtyQrXFhLzj/7LIPrnvny6an81q36K2CMMRHMl4S+HKggImVFJCeatKen3khEKgEFgO/8G2LmPPOMJvYePdKZbARw661a8/j227q6kTHGRKgME7pzLgnoDMwGNgKTnXPrRaSfiDRNsWlrYKILVbevVPLlg969Yf58mDs3g41ffRWuuAIeegiOHQtKfMYY428R3W0xI3/9BZUqwaWXwvLlus5FmhYvhrp14dFH4b33AhqXMcZkVtR2W8xIrlzQr5+Wmn/6aQYb16mjC5YOHw5Dh8KpU0GJ0Rhj/CWqEzroYkVVq+rwS4Y5un9/uP12HYCvXFlnKIXHCJIxxmQo6hN6bKwOkW/ZAh9+mMHG8fEwZ44ugZQ7tzbzql3bLpYaYyJC1Cd0gCZNdESlb990GnclE9EdVq3SksZfftGm602awJo1QYnXGGMyI1skdBFdAGPvXnjnHR93io3VCUebN+sEpCVLdIGMhx6ySUjGmLCULRI6wE036Un2a6/BoUMXsGN8PHTrBtu362yl0aO1YYwxxoSZbJPQAV55RRstduwIv/12gTsXKKBn6u3aaf+XHTsCEqMxxmRWtkro1appr/Tp06FiRa1QPO2160w6Xn1Vm6936xaQGI0xJrOyVUIHXX1u9WodDn/8cahVC5Ytu4A3KF5c32TKFFi4MGBxGmPMhcp2CR20xPybb2DCBNi3TysTO3YEnzv6PvsslCoFTz+diVN8Y4wJjGyZ0EErX1q31p7pzz0HH38MV16pS45mmKPj43U8Pbm00RhjwkC2TejJ8uWDQYPODsM88YRWxGzcmMGOLVtqcXuvXnD0aFBiNcaY9GT7hJ4seRhm7FgtPa9eXdeRTkpKYwcR7fmyf38Gq1IbY0xwWEJPQQTuvx/Wr9ea9R494MYb9bFXCQk6+WjoUNi2LZihGmPMeSyhe3H55dqdcdIkLTevUUNPwr0293rlFciRw8oYjTEhZwk9DSI6TL5hA9xzj3ZrrF3bSzuXokV1+bqpU3U1DWOMCRFL6BkoXFjP1D/9FHbv1lGWjz9OtVHXrrrYtJUxGmNCyBK6j+69V8fSb75Zh80HDkzRKj13bi2VWbMGPvgglGEaY7IxS+gXoFAhmDkTWrWC7t31xPzMGc+LLVroEna9esHOnSGN0xiTPVlCv0C5csH48fDkk1rc0q4dnDyJDroPH65XThs00HJGY4wJIkvomRATo8n81Vc1ud99Nxw7hhazz5wJu3bBnXfahCNjTFBZQs8kEa1T//BDnZB0222ek/I6dbRx15o10LQp/PFHqEM1xmQTltCz6KGH4PPP9YJpnTqeNul33gljxsCiRdowJs3ppsYY4z+W0P3grrv0LP3gQU3qe/agiXzYMG2+3qFDiqunxhgTGD4ldBFpJCKbRGSriPRIY5uWIrJBRNaLyHj/hhn+brhB26MfO6ZVMKdOoQ3X+/eH//xHS2L+rnP0wjk9vT92LGgxG2OiS4YJXURigWHAnUBloI2IVE61TQWgJ1DHOVcFeDoAsYa9q6+GUaNg8WJdAwPQMsann4a33jp3LdITJ/QX4LXXdKy9SBEoV04L3o0xJhPifNimFrDVObcdQEQmAs2ADSm2eQQY5pw7BOCcy7Y1e61bw7ffwhtv6PBL8+aiDw4dghdfhLVrdcHpVavOziqtWFG7gZ06BePG6RJK118f2g9ijIk4viT04sCuFI93A6mzTUUAEVkMxAJ9nHNfpX4jEekEdAIoVapUZuKNCG+8Ad9/rzNKq1WD8uVj4P33tWD9iy+0f0D37trKsXZtKFhQdzx2DL78UushP/88pJ/BGBN5fEnovr5PBeBWoASwSESuds4dTrmRc24kMBIgISEhnQHlyJYrF0yerF0aW7SAJUsgPj5Oi9ad05pHb/Ll0xlLfftq2UyVKsEN3BgT0Xy5KLoHKJnicQnPcyntBqY7504553YAm9EEn22VKaOVi6tWwVNPpXghrWSerEsXyJtXx9aNMeYC+JLQlwMVRKSsiOQEWgPTU23zOXp2jogUQodgtvsxzojUpIleHB01SgtdfFKwIDz6qK5gvWNHQOMzxkSXDBO6cy4J6AzMBjYCk51z60Wkn4g09Ww2GzgoIhuA+UA359zBQAUdSfr1g1tugcceg3XrfNypa1eIjdUOjsYY4yNx6dVGB1BCQoJLTEwMybGDbd8+XaP04oth+XIdKs9Qp056Wv/TT7qEkjHGACKywjmX4O01mykaBJdfriMoW7bA7bfr6kdjx0JiYjrziJ5/XssY33wzqLEaYyKXnaEH0ahROoqyffu5CxsVKwaVKuntjju0lUBMDHDffTBjhvZXL1AgZHEbY8JHemfoltBD4ORJ2LYNfvxRb5s26d+NG7XjbrVqehZ/b4U1xFS/RtsH9O4d6rCNMWHAEnqESErSoZkBAzTJV64Mc3LdTbGd3yE//6zljMaYbM3G0CNEXJyugLR+vSZ2gH+u7IkcPMjyTqOsC68xJl2W0MNQbKz2hFm7Frp+ciPL895C0fGDqVrxJEuWhDo6Y0y4soQexmJitHVAzU//TQn2cM+xMTRvDrt3hzoyY0w4soQeAWLuaAA1atA37+v8efw0994Lf/0V6qiMMeHGEnokEIF//5tcP29h7sPj+f577eFljDEpWUKPFM2bQ61aXPdxZwY9upWRI7UjrzHGJLOEHiliYrQnb2wszy77J43r/cETT2jfdWOMAUvokaV0aRgzBlm1iiklnqJoUV2xbn+2XR/KGJOSJfRI06QJ9OhB7jGjWNBhDL/9piWOVqNujLGEHon694dbbqHMa48x8YX1zJ+fYlHqVM6c0bYCH34IQ4fCn38GN1RjTPD4awk6E0xxcTqVtHp1mo1pwTOPLGfw4Iu47jpo3Fhb9C5ZorfvvtP1qZN9+ilMnQqFC4cufGNMYFhCj1RFi2pSv/12Bl3TiaW1x9G2rXDmzNlOjpUr6xj7DTfoetSrV0P79rou9cyZ2t3RGBM9LKFHsnr1oF8/Ynv35stX6vJEuccpX16T9/XXn99xt1Ilva7atKkm+c8+07cwxkQH67YY6c6c0Qul8+bpGEvNmhnusmOH7rJli/Zof/DBwIdpjPEP67YYzWJiYMwYuOwybfzywQewdKk2Vk9D2bKa+2+9FR56CHr10t+F9Pz557mLchhjwo8NuUSDQoXgk0/0tLtjx7PPlyoFVarorWpVqFULrroKgEsugS+/hCeegFdega1bYfRo+P137cWevOhG8t+dO3Wo5vPPQ/MRjTEZsyGXaHL6tC4qvW6dNlVfv17v//ijLpME8PLL8O9/a38YwDl44w1dwjQ29tx69rx5ddy9ZpmDtFvWmbm7r+Smr/tw++3B/2jGGGUrFmV3SUm65l3//jBuHLRsqYXpKVZAmjUL5syBChXgyis1kRcrBpK4XIdydu4E4F9lZ/HOlkbExobqwxiTvVlCN8o5GDwYuneHa66BadN0WCatbUeMgKee0hLJsWM50uZRju8+xML/W0ebJy4NbuzGGMAuippkItCtG3zxBWzfDgkJ8N//nr/diRNasP7443DbbbBiBdx0E/k/H8NlcoD4bk9w4kTwwzfGpM+nhC4ijURkk4hsFZEeXl5/UEQOiMgqz62jt/cxYaJxY1i2TAvV69fX2sVkW7bozKOxY6FvX52BVLAgAFKzBns6vMQ9f0zkqwcn+ny4U6f0HwO2KIcxAeacS/cGxALbgHJATmA1UDnVNg8C/5fRe6W81axZ05kQO3TIuTvucA6ce+IJ5yZPdi5/fucKFnTuq6+873PqlNtU4Hp3kALu15V7MjzE6dPOtW2rh3j+eT/Hb0w2BCS6NPKqL2fotYCtzrntzrmTwESgmf9/WkzQXXKJnoE/+ywMG6YXSytVgh9+gDvu8L5PXBw5J/6H3PzJgbsf1rH2NDgHTz+tJ/tXXAFDhmjBjTEmMHxJ6MWBXSke7/Y8l9q9IrJGRD4VkZJ+ic4EXmysXiidOBFeegkWLUr7QqlHmYYVmXnLIKrsns3ePiPS3K5fP3jnHejaFRYv1qKaLl3S/Q0wxmSBvy6KzgDKOOeqAV8DH3vbSEQ6iUiiiCQeOHDAT4c2ftGqFfTpA7ly+bR5vU/+xby4BhQY8KzOSkrl7bf17R56SH8vLrtMS+DnzoUpU/wbujFG+ZLQ9wApz7hLeJ77m3PuoHMu+ZLX+4DXhiLOuZHOuQTnXEJh698a0QoVFjY9/yF/nM7J4WYPnNMXYMwYrXZs3hxGjvx7DhOPPabVkl27wvHjIQrcmCjmS0JfDlQQkbIikhNoDUxPuYGIFE3xsCmw0X8hmnD10AsleKnQMC7Z8B1nBg4CYMYMPSuvXx/Gj9fW7cni4nSoftcuGDAgREEbE8UyTOjOuSSgMzAbTdSTnXPrRaSfiDT1bPakiKwXkdXAk2jVi4lyuXPDjW+3YRItcS+8yLbHBvHRP2Zw71UbmDr+D3LnPn+fOnXggQd0GGbz5uDHbEw0s5miJkucg4Y1DzJszU1UPJ2qhKVYMShfHsqV034CnTpBwYL8+itUrKjl7l99dXZIxhiTMZspagJGBF58qyBXnt5A9RIH2D99qfaL6d8fGjbUjebO1YZg114LixZRpIhWwMyZo8vhGWP8w87QjV/MmKH5umRaBasrVkDr1tpyoHdvknq+QI1acRw5Ahs3Qp486bz5gQPw229/t/41JjuzM3QTcHffnU4yB11J6YcfoF076NePuAb1GPXCTnbu1H7sXm3YoP3dS5bUBVJr1ID33oMjRwLxEYyJeHaGboJv3DitYcyRg6FXf0D3pc1Zt05b9+KcDtEMGaID7Llz6xp5V10FH30Eq1ZBfLzOan3kEV1A1dsg/NGjsGaNroy9bh3kyKFdI5Nvl1+ufwsV0lWfjIkQ1j7XhJ+tW6FNG0hM5P0cj/NFnVcZ12IqeUcMgbVroUgR6NxZE3+hQrqPczp0M2qU1kT+739w1VWcebgjUrYMstaTwFev1oVTk11yie7r7cw+Lg6KF9elm556CnLmDManNybTLKGb8HTyJPTuDYMGkUQscZzmp3xV+aV1V6q+3Ib8l3mpe/T47af/sfnlyRSaOoqKvy8FwIngrqhITPVrdAZT8q14cT2LP3EC9u2DvXv1lnx/+XL4+mstvRk6FO68M1jfgDEXzBK6CW9z5rD/vU+ZGtOCl5c1YPceIVcu7fLbqhXcdZdeNN2wQVu5z5gB332nC1tffjl0rLORX7ceY+zqquQpmIcuXfTk3tP11zezZmknsc2b9YBvvqkdxYwJM5bQTcQ4c0aT9aRJuu71vn2azAsXhp9/1m1q1NCce/fdej95CHzJEnj9dZg+Xfd55BFtM5BBr7GzTp7UJjR9++r9rl2hVy+46KKAfFZjMsMSuolIp0/rgkqTJsGvv2pH37vu0hGU9KxfD4MG6bVX0KH6V1/NeL+/7d0LPXvCxx/r5KjXXtM3SdnHwJgQsYRusqWdO3XkZMQIqFJFz+Bz5LiAN1i6VPv9Jibqr0GnTnraX7RoxvsaEyBWh26ypVKlNKGPGaM5uU+fC3yD2rV1qb7PP4eqVbVffKlSOrC/cKE1djdhxxK6iXr33qsdIF991fua2OmKiYFmzbQmfvNmLW38+mu49VZN8sOGac27MWHAErrJFt56S3uEtWt3YRNNT57U+UmAznwaPBj27IEPP9QJTp07Q+nSejH11KmAxG6Mryyhm2whXz5d23T3bs3Bvjh8GBo10lL2F15IMcISH6+n/ImJOiRz3XV65n7NNTB7dsA+gzEZsYRuso3atXUe09ixuoRqenbvhrp1dYimQQNdPu+pp7Ss8hy1amkSnzZNz9AbNdJ6Smv2bkLAErrJVnr31sT++OO6cpI369bBDTdo3fusWZqvu3bVBa8ffhiSklLtIAJNm+qOAwfqBdOqVeG556yRmAkqS+gmW4mL0zP0U6d05aQUS6ECsGAB3HSTPr9oEdx+u+brwYO1h/vHH2uRy19/eXnzXLmgWzfYskXffMgQHXd/4w2tbTcmwCyhm2ynfHm9hrlggebaZBMn6uSlYsW0BP3aa8++JqLj6EOHwmef6ahKmgtdFykC77+vY+yVK+uZeokSuuDHf/4Dx44F8uOZbMwmFplsyTlo0UL7wixbBvPmad6tW1fLzi+9NO19R4+GDh106GbmTG3mmK4ff9Rpq+PGaRfI+HgdomnbVn9BLmi2k8nubKaoMV4cPAjVqumZ9pEjmuDHjMHr4tapTZmi3QCqVNEx9ssu8+GAzmmjmnHjtJ/BwYPaQaxNGx2cr149y5/JRD+bKWqMFwUL6pj4iRNawTJpkm/JHHSy0owZsGmTzjHyaW6RiC7IMWyYjqnPmKGD9KNGaZex6tV1LOjgwax8LJON2Rm6yfZOnMhgTdN0zJunQ+PNm8Pkyd4XT8rQoUMwYYJOVlqxQhfZaNZMa90bNoTY2MwFZ6KSDbkYE0ADB0L37to35umnfd/v8GEdi//HP+D++z1PrlmjS+2NGaNn6kWL6nqs5cqdeytbNvO/QiaiWUI3JoCc0zP0mTO1BP3GGzPe59gxnbC0bJlWOy5fDldfnWKDkyd1SGbyZB3X2bZNl9xLqWhRSEjQypkMr8yaaJHlMXQRaSQim0Rkq4j0SGe7e0XEiYjXgxkTjUS08qVUKV27ev/+9Lc/flxXY0pM1OHzAgWgdWsd+vlbzpw6UD9pki6MffQoHDig9ZTjx+vU1YYNNekPHBjIj2ciiXMu3RsQC2wDygE5gdVAZS/b5QMWAUuBhIzet2bNms6YaPLDD87lyuVc/frOJSV53+bECeduu825mBjnJk3S5+bMcQ6ce+yxTBy0TRvn8uRx7pdfMh23iSxAoksjr/pyhl4L2Oqc2+6cOwlMBJp52a4/8DrwZ9Z+YoyJTNWrawHLN9/oKnap/fWXjpfPn6/VNS1b6vMNGsDzz8Pw4Tpp6YL066fDMy+/nOX4TeTzJaEXB1J2vdjtee5vIlIDKOmcm+nH2IyJOB06aHFK//7aBybZyZPwz39qW/VRo3ROUUr9++tweMeOafeY8eqKK3SnkSNh+3a/fAYTubJchy4iMcAQ4Fkftu0kIokiknjgwIGsHtqYsDRsmE5YattWG3wlJcF99+lw97BhmvRTy5lTKxdPndKKl9Q9ZtL1wgs62/TFF/32GUxk8iWh7wFKpnhcwvNcsnxAVWCBiPwE1Aame7sw6pwb6ZxLcM4lFC5cOPNRGxPG4uN1JmlSkp6VP/CAPh4yBP71r7T3u+IKePddbdk7YMAFHLBYMXjySb1Y+vdqHCY7yrBsUUTigM1AfTSRLwfuc86tT2P7BcBzzrl0axKtbNFEu6lTdcwcdPm7HmnWh52rXTvNzYsWQZ06Ph7s0CGtTa9bV/8pYKJWlsoWnXNJQGdgNrARmOycWy8i/USkqX9DNSZ6NG+uQyzDhvmezEG3L1tWh2kOHTr3taNHdWy+Z09N9qVLe9bSKFBAZzd98QUsXuzXz2Eih00sMiYMLV+uE5SaNdOx+IUL9Yx91SpdNSkuTle+27gRrrwSvv0W4v46ruM2FSroDpnqQ2DCnTXnMibCXHedjqNPmaJn+sOHw8UX6/XPb77R7pBLlsB77+ls04EDgbx5dYP//lfLaUy2Y2foxoSpM2d05n+pUtrOJVcu79u1aqXj9cuXwzVXnYSrrtJVsX/4AWLsnC3a2Bm6MREoJkZbAtx4Y9rJHLQypmBBvZj6l8upk41Wr9ZfA5OtWEI3JsIVLKgr3q1dC336oAtmVKumK2KfOhXq8EwQWUI3Jgo0aaITlgYOhCVLY3QAfts27bFusg1L6MZEiSFDoGRJnch0/NYmWtfYsyd8+mmoQzNBYgndmCiRP7+28d22DZ7v7unpW66cTldt0QL27Qt1iCbALKEbE0VuvVVXTXr3Xfh6xxXaP/2113TCUeXKuhKSczinTcAOHw51xMafLKEbE2VeeQUqVdKuj4f/Fwfdu3N00SoOF70KHniAxMvvIqHILkqV0np3nxa4NhHBEroxUSY+Xlel27dPz9grVYKLr69EwQ2LeJK3qHxgAd8ersKMu0eyY7vjkUd0GT0T+SyhGxOFkmeaHjyorQEGDIDZX8fS79CT5Nm6lvi613HXjEdZW7UNkyc7hg8PdcTGH2ymqDHZkXM6AalPH96pMpzntjzKd99BjRqhDsxkxGaKGmPOJaJ9Xxo0oPP2Z7ihwI+0bKk9YkzksoRuTHYVEwOjRyN58vDFxfezZ8dJn8fTV67U9r4rVwY+TOM7S+jGZGfFisH773PR5h+Yf/OLfPKJdnBMy/Hj8NxzOkY/YQI0bRqi8vbfftNVt805LKEbk93dcw906sT1CwfS/foFPPMMrFhx/mazZkGVKvDGG/DwwzB/vl50bdFCF8EOmv/9T2vqn3wyiAeNDJbQjTEwZAhSoQIDdrWjQqFD54yn//qr9vtq3Bjy5NGFNkaO1JLIjz7SBZK6dAlirKNGwYEDOknKBv3PYQndGKOLY4wbR+z+fSyo9Cg//+To0AE++EDr2D/7DPr21THzunXP7taqlbaLGTmS4JQ+njyp/0QoVw7++APGjQvCQSOHJXRjjEpIgP79KTTvE6a3+A9TpkDHjtqJd/VqePFF733Z+/fXs/cuXfTsPaDGjYM9e7S3QY0aMGKEzYpKwerQjTFnnT4N9evjVqxgaPtVXFKzPO3bZ7zw0ZEjUKuWLmqdmKirLPndmTM6dh4fr6sxjRwJjz2m/Wquvz4ABwxPVodujPFNbCyMGYPExfHMirY81C7Jp1XsLr4Ypk3Tws3Gb4IAAA8ASURBVJN77oETJwIQ27RpsGkT9OihdfRt2uhQ0ciRAThYZLKEbow5V8mSOiC+dKlWkpw549NulSrB+PGwapUO1fj1H//OadfI8uXh3nv1ufz5tRh+4kS7OOphCd0Yc75WraBbNy1Kb9vW57rEJk20b8yECTBoUOYOfeKEXvd8++0UvyULFsD332tMcXFnN+7USXewi6PKOReSW82aNZ0xJoydOePc6687B841bOjcsWM+79aype52zz3OLV3q2+FOnXJu1CjnihXTfZP3P3LE6fGLFHHujz/OP1j16s5Vq6b3swEg0aWRV306QxeRRiKySUS2ikgPL68/JiJrRWSViHwrIpX9/stjjAkuEXj+eV2XdO5cqF9fZ2j6sNvo0VoVs3Ah1K4Nt90Gc+Z4H4ZxDqZOhauvhkce0QuqCxfCm2/CjBnw0DU/6M7PPAO5c59/sE6dYM0aWL7cP587kqWV6ZNvQCywDSgH5ARWA5VTbZM/xf2mwFcZva+doRsTQaZNcy53bueuvNK5n3/2ebejR517442zZ93Vqzs3aZJzSUn6+sKFztWura9VquTc1KnnnmjPn+/c1Fwt3WHyuxljD3s/yJEjzuXN61yHDpn/fBGELJ6h1wK2Oue2O+dOAhOBZql+FFKueZIXsMJQY6JJ06Z6lrxvH9x4I6xf79Nu+fJB166wfbtOUjp+XIfnr7wS7rgDbrlFl8IbNQrWrtUKGZGz+99afAvNTn3K1Mv/xd1tL6Z3b62sPEf+/FrxMmFCtr846ktCLw7sSvF4t+e5c4jIEyKyDRgIWJMFY6JN3bo6c+jMGb2/ZInPu+bKpf1fNmyAKVPg0ku1lPy112DzZq2KSXmt82+DByM5ctD6u6fo0EEvuN51l9a7nyP54uj48Vn6iJEuw4lFItICaOSc6+h53A643jnXOY3t7wPucM619/JaJ6ATQKlSpWr+/PPPWQzfGBN0O3ZAw4awezdUrQo5ckDOnGdvyY9LldJFNOLjM3ecvXuhTBldHHX4cJzTkvMuXbSycsIEncwE6EB8jRr6d+XKc0/zo0xWJxbtAUqmeFzC81xaJgL3eHvBOTfSOZfgnEsoXLiwD4c2xoSdsmW1I1ebNnDZZTq5B7QL4r59Or6yejUMHgzDhmX+OEOHQlKS9utFc/Sjj+oF0z//1Mmh990HP/2U4sXVq3WqanaV1uC6O3uRMw7YDpTl7EXRKqm2qZDi/t2kM2iffLOLosZEuTvucK5QIZ/LHc9x6JBz+fI516qV15ePHHGuVy/n4uOdy5nTuWefde73n444lyePcx07ZjHw8JZefvWpl4uINAaGohUvHzrnBohIP88bTxeRt4DbgVPAIaCzcy7dqybWy8WYKLdsmdYsvvqqTte/EK+8Ar166UB79eppbrZ7t5ZHjh4Nl1wCCyt0pOr6icgvv+jF0hSOH9druWvX6rj90aNw7Jj+wyL5b/L9yy+Hjz+Gq67KxOcOsPSGXKw5lzEmcJo00RYCO3acl2DTtHu3NuGqWxdmzvRplzVrtGT+99nf8z3Xs7T9e+xq8hhr1/L3bfv2s3XwOXNq/5l8+eCii87/O2uWXmOdMEE/QjixhG6MCY3ERF2vrn9/6N074+2dg+bNtURy7Vrt3XIBvp7jKNWsOif+FGrwAzExQoUKOmkp5a1cufQ7SO7apSWUK1dqJU63buFznTW9hG5T/40xgdW0qXOXXKLj4hmZMkVnGb3+eqYPd/r/3nUO3Mb/fO9OnMj027jjx3UIH5y7/36XpffyJ7I69d8YYzKtTx84fFirVtJz+DB07gzXXquzkTIppu19EB9Ppe8+ynTFJOhyexMmwMsva++vW27RtTXCmSV0Y0xgVa8O//iHNmf5/fe0t+vZUxcwHTUqjVlGPrr4Yj3ehAla35gFInpt9vPPYeNGHT36/vssvWVAWUI3xgRenz5aVjJkiPfXv/1We7A/9ZQuhZdVDz6oZ/zTp2f9vYBmzXRibO7ccPPN2tr36NGM9ws2uyhqjAmOVq3gyy+14qVQobPP//WXDrP88QesW6dlJll1+rROgKpaVY/pJ7/9ph9j3jwdkmnRQiey3nxzxsv0+YstQWeMCb2XXtJi8MGDz33+tdfgxx91MQ1/JHPQpfQeeABmz4ZffvHPe6K/Q3Pnwnff6bofU6dCvXpQoYIW8uzc6bdDZYoldGNMcFSurO0C3nkH9u/X5zZu1ElEbdrAnXf693jt22sjsbFj/fq2IjpfasQI7XQwZgyULq0TnMqU0TY3I0bo5KVgD4DYkIsxJng2bdLE/swzMHCgjlVs3Ki3yy7z//FuukkvxK5fH/BC8h07dHbp6NGQ3HewWDG49Va91aunZfVZDcOGXIwx4eHKK3WsYtgwHaNYvFgXEA1EMge9OLpxY1BWMypbVq/97tihv1vDh+vv1bx52t23QgXtEtmunV4DDgQ7QzfGBNfWrVCpkl64vO02HZQO1NnzkSNQtKgm9nffDcwxMuCcJvgFC87e3nxTR5kyw6b+G2PCS6dOOra9Zg1ccUVgj9W2rfaE2bv3/DVJQ8A5/S3LbKm9DbkYY8LLe+9pt6xAJ3Pwe016Volkbd5UeiyhG2OCLzZWe9QGQ716Ong9enRwjpeRgwcD9taW0I0x0c3fNelJSXDyZOb2XbECKlbUFbMDwBK6MSb6+aMmPXn/8uX1ou7GjRe2/9KlUL++Nl2vVy/zcaTDEroxJvpVqAB16uiwS2YKQebOhZo1teawUCFd/eKGG7Qm0Rf//S80aKD7LlqkDdkDwBK6MSZ7aN/+wmvSV6+GRo00GR8+DOPH6/7LlkGJEnDHHfDRR+m/xzff6HuUKKHJvFSprH2OdFhCN8ZkDy1batmiLxdHd+3S6pjq1bVf7pAh2m+mTRvtwlW6tE6KqlcPHn5YV2M6c+b895k1S9ewK19eC9CLFfPzhzqXJXRjTPaQUZ905/TMu1MnvXA5cSI89xxs26atCnLlOv/9Zs6Ejh1hwAC4//5z33faNO27W6UKzJ8PRYoE9vNhCd0Yk514q0nfv1/bD1Stql23xo3T5Lxpk/abKVAg7ffLkQNGjoTXX9cfgPr14cABmDxZe+vWqKFDLgULBvyjAQSovN0YY8LQbbfpWPYHH2hD8w8/hBkztBTxhht0taSWLSF/ft/fUwSef14vdLZrp8M0e/fqRdiZM7WqJUgsoRtjso/kmvRXXoE5c7Qp2NNP6yoVlStn7b1btNAfi2bN9Ifj888hb17/xO0jS+jGmOzlySfh0CFtXN6kiQ6b+Evt2rrKRc6cAW/X640ldGNM9lKkSGA7L6a+eBpEPl0UFZFGIrJJRLaKSA8vr3cVkQ0iskZEvhGR0v4P1RhjTHoyTOgiEgsMA+4EKgNtRCT1YNNKIME5Vw34FBjo70CNMcakz5cz9FrAVufcdufcSWAi0CzlBs65+c65E56HS4ES/g3TGGNMRnxJ6MWBXSke7/Y8l5YOwCxvL4hIJxFJFJHEAwcO+B6lMcaYDPl1YpGItAUSgEHeXnfOjXTOJTjnEgoXLuzPQxtjTLbnS5XLHqBkisclPM+dQ0RuB3oBtzjn/vJPeMYYY3zlyxn6cqCCiJQVkZxAa+CctZxEpDowAmjqnNvv/zCNMcZkJMOE7pxLAjoDs4GNwGTn3HoR6SciTT2bDQIuAj4RkVUiEh6L9xljTDYiLjPN3v1xYJEDwM+Z3L0Q8Jsfw/Eniy1zLLbMsdgyJ5JjK+2c83oRMmQJPStEJNE5lxDqOLyx2DLHYssciy1zojU2a59rjDFRwhK6McZEiUhN6CNDHUA6LLbMsdgyx2LLnKiMLSLH0I0xxpwvUs/QjTHGpGIJ3RhjokTEJfSMerOHkoj8JCJrPZOrEkMcy4cisl9E1qV47lIR+VpEtnj+prP6bdBj6yMiezzf3SoRaRyi2EqKyHxPf//1IvKU5/mQf3fpxBby705EcovI9yKy2hNbX8/zZUVkmef/10me2ebhEttoEdmR4nu7NtixpYgxVkRWisgXnseZ+96ccxFzA2KBbUA5ICewGqgc6rhSxPcTUCjUcXhiuRmoAaxL8dxAoIfnfg/g9TCKrQ/wXBh8b0WBGp77+YDN6DoAIf/u0okt5N8dIMBFnvs5gGVAbWAy0Nrz/HDg8TCKbTTQItT/zXni6gqMB77wPM7U9xZpZ+gZ9mY3yjm3CPg91dPNgI899z8G7glqUB5pxBYWnHN7nXM/eO4fQ9tdFCcMvrt0Ygs5p/7neZjDc3PAbeiiNxC67y2t2MKCiJQAmgDvex4LmfzeIi2hX2hv9mBzwBwRWSEinUIdjBdFnHN7Pff3AUVCGYwXnT3LGH4YquGglESkDFAdPaMLq+8uVWwQBt+dZ9hgFbAf+Br91/Rhp/2gIIT/v6aOzTmX/L0N8Hxvb4pIqBYDHQo8D5zxPC5IJr+3SEvo4e4m51wNdLm+J0Tk5lAHlBan/5YLm7MU4D2gPHAtsBd4I5TBiMhFwBTgaefc0ZSvhfq78xJbWHx3zrnTzrlr0RbbtYBKoYjDm9SxiUhVoCca43XApUD3YMclIncB+51zK/zxfpGW0H3qzR4qzrk9nr/7ganof9Th5FcRKQrg+Rs2rY6dc796/qc7A4wihN+diORAE+Y459xnnqfD4rvzFls4fXeeeA4D84EbgEtEJHndhZD//5oitkaeISzndP2GjwjN91YHaCoiP6FDyLcBb5HJ7y3SEnqGvdlDRUTyiki+5PtAQ2Bd+nsF3XSgved+e2BaCGM5R3Ky9GhOiL47z/jlB8BG59yQFC+F/LtLK7Zw+O5EpLCIXOK5Hw80QMf45wMtPJuF6nvzFtuPKX6gBR2jDvr35pzr6Zwr4Zwrg+azec65+8ns9xbqq7uZuBrcGL26vw3oFep4UsRVDq26WQ2sD3VswAT0n9+n0DG4DujY3DfAFmAucGkYxTYGWAusQZNn0RDFdhM6nLIGWOW5NQ6H7y6d2EL+3QHVgJWeGNYBL3qeLwd8D2wFPgFyhVFs8zzf2zpgLJ5KmFDdgFs5W+WSqe/Npv4bY0yUiLQhF2OMMWmwhG6MMVHCEroxxkQJS+jGGBMlLKEbY0yUsIRujDFRwhK6McZEif8HtpAb5NTKeBIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(hist.history['loss'], color='b')\n",
    "plt.plot(hist.history['val_loss'], color='r')\n",
    "plt.show()\n",
    "plt.plot(hist.history['accuracy'], color='b')\n",
    "plt.plot(hist.history['val_accuracy'], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "non_idx = np.where(y_test[:,0] == 0.)[0]\n",
    "yes_idx = np.where(y_test[:,0] == 1.)[0]\n",
    "y_hat = model.predict(X_test_stacked)[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([y_hat[i] for i in yes_idx], 'bo')\n",
    "plt.show()\n",
    "plt.plot([y_hat[i] for i in non_idx], 'ro')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
